iT邦幫忙

2022 iThome 鐵人賽

DAY 2
1

第一天我們學會了用ssh key 連線,過程中有不斷講到port,那要如何看port有沒有被使用以及相關訊息呢?

lsof(list open files)

  • 可以看到是哪個服務佔掉PID(Process ID)
    lsof -i

  • 指定看哪個port
    lsof -i :{port}

可以看到原來是哪個User跟python佔用了這個5100 port 但是...有沒有更詳細的資訊可以看呢?

使用ps(Process status)來觀察Process的狀況

  • 查看該PID 的詳細資料
    ps -a | grep {PID}

  • 補充小知識

    • PID: process的編號,使用完被收回去,下次再分給不同的process
    • PPID: PID的父Process
      圖中可以看到zsh => python uvicorn => multiprocessing management,zsh 是python uvicorn 的父process,而python 是multiprocessing 的父process
  • 清除佔用的服務
    kill -9 {pid}

  • 一行指令
    kill -9 $(lsof -ti:{port})

tips: -9 (immediately) / -15 (TEMP) / -3 (QUIT) 
刪東西會怕的人,保守作法可以先kill -STOP 看看 有需要啟動再kill -CONT 讓他繼續執行

這時候某一個終端機 ssh 連線到別台機器,你要怎麼看到這些資訊呢?(就是[Day1]純連線至A機器)

lsof -i@xxx.xxx.xxx.123

就會發現本機也是開一個port 去接A機器~

[Day1]也有講到透過A機器去連B是要另外指定一個port 去接的,詳細可以回去看看~


上一篇
[Day1] SSH 入門及 SSH Tunnel靈活運用
下一篇
[Day3] Linux 偷懶小工具 nohup
系列文
剛入職軟體工程師會需要知道的常見工具篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言